Merged
Conversation
…eline - Set up Jest + React Testing Library testing infrastructure for Next.js frontend - Write smoke tests for all pages (Home, TaxonDetail, Sequences) and components (SearchBox, TaxonCard, Skeleton), plus API client and utility tests - Add backfill_ncbi_tax_id.py pipeline step that queries NCBI Taxonomy API by scientific name to populate the ncbi_tax_id column - Add 6 unit tests for the NCBI taxonomy ID lookup function - Total test count: 117 (59 API + 58 frontend) https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
…ontend tests - Expand NCBI ingestion with broader COI gene search terms (COI/COX1/COXI/CO1 + cytochrome c oxidase title variants), genus-level fallback when species search fails, --skip-existing and --no-genus-fallback flags - Add dedup_sequences.py pipeline step to remove duplicate accessions, keeping longest sequence per (ott_id, accession, marker) tuple - Make SCOPE_OTT_ROOT configurable: env var in docker-compose, --scope CLI arg for ingest_ott, exposed in /health endpoint response - Add frontend tests to CI pipeline (npm test step) - 18 new tests (15 ingestion + 3 dedup), total: 135 (77 API + 58 frontend) https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Refactor validate.py: extract compute_validation_report() returning structured ValidationReport with OutlierRecord dataclass, JSON export via --output flag, cross-family close and within-genus distant detection - Add /v1/stats endpoint: taxa by rank, sequences by source, edge counts with distance summary, species coverage percentage - Add ErrorBoundary React component: catches render errors, shows retry button, supports custom fallback, wraps main layout - Add getStats() to frontend API client with StatsResponse type - 14 new tests: 12 validation (walk_to_rank, report structure, outlier detection), 2 stats endpoint - 5 new frontend tests: ErrorBoundary (render, fallback, retry, custom) - Extend MockQuery with select_from() and one() for stats queries Total: 154 tests (91 API + 63 frontend), all passing https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Stats dashboard page (/stats): taxa by rank breakdown with color bar, sequences by source, MI distance distribution, coverage percentage - Rate limiting middleware: sliding-window per-IP (100 req/min), excludes /health and /docs, returns X-RateLimit-Limit/Remaining headers, 429 with Retry-After when exceeded - Next.js error.tsx and not-found.tsx pages for graceful error handling - Nav bar updated with Stats link - 5 new rate limit tests, 1 new API client test (getStats) Total: 160 tests (96 API + 64 frontend), all passing https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Request logging middleware with X-Request-ID header for tracing - Configurable CORS origins via CORS_ORIGINS env var - StatsPage test suite (7 tests) covering all dashboard features - Request logging tests (3 tests) https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Search endpoint returns SearchPage with total count for pagination UX - Sequences endpoint adds offset/limit pagination (SequencePage response) - New /health/ready endpoint: DB connectivity check + connection pool stats - Lifespan context manager for clean connection pool disposal on shutdown - Updated frontend types, API client, and components for new response shapes - All existing tests updated for paginated response format (174 total) https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Multi-stage Dockerfiles: dev (hot-reload) + prod (multi-worker, non-root user) - Web prod stage uses Next.js standalone output (~80% smaller image) - API prod stage runs 4 uvicorn workers with warning-level logging - docker-compose.prod.yml override: no source mounts, env-based DB password - Structured logging: JSON format for production log aggregators, configurable level - New settings: LOG_LEVEL (debug-critical), LOG_FORMAT (text/json) - Makefile: up-prod / down-prod targets - 5 new logging config tests (179 total) https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Security headers middleware: X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy on all responses - Cache-Control headers: MI network (5min), stats (1min) - Graph page test suite (8 tests): loading, title, stats, error, node search - SearchBox keyboard navigation: ArrowUp/Down, Enter to select, Escape to close - SearchBox ARIA: combobox role, aria-expanded, aria-selected, listbox/option - 192 total tests (110 API + 82 frontend) https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 27707902 | Triggered | Generic Password | 8343e1e | docker-compose.prod.yml | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.